c 函数及指针学习 3
strlen(x) 返回 size_t 类型,size_t是 unsigned int 类型,所以 strlen(x)-strlen(y) 返回 unsigned int 始终 >=0
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#include <stdio.h>#include <string.h>void main(){char *sa="sdhshdh";char *sb="cdehhhhsdssssd";printf("%d , %d \n",strlen(sa),strlen(sb)); if(strlen(sa)-strlen(sb)>=0){ printf("run 1\n");}} |

如果不加 include <string.h>头文件
|
1
2
3
4
5
6
7
8
9
10
11
12
|
#include <stdio.h>void main(){char *sa="sdhshdh";char *sb="cdehhhhsdssssd";printf("%d , %d \n",strlen(sa),strlen(sb)); if(strlen(sa)-strlen(sb)>=0){ printf("run 1\n");}} |
|
1
|
warning C4013: 'strlen' undefined; assuming extern returning int |

2可变参数列表
要用到 stdarg 宏
3数组名
数组名是一个常数指针,在两种情况下数组名不用 指针常数表示
sizeof sizeof返回整数数组的长度
& 是指向数组的指针,而不是指向指针常量的指针。
|
1
2
3
4
5
6
|
#include <stdio.h>void main(){int a[4]={1,1,1,1};printf("%d \n",sizeof(a));} |

并不是 4(指针常量的长度)
|
1
2
3
4
5
6
7
8
|
#include <stdio.h>void main(){int a[4]={1,1,1,1};int *b;b=a;printf("%d \n",b[2]);} |
数组对数组赋值的方法:利用循环(已经有了数组,对数组进行更新)
利用指针变量。
不能这样写
|
1
2
3
|
int a[4]={1,1,1,1};int b[4];b=a; |
因为 b为指针常量不能赋值。
4下标引用,和间接引用
|
1
2
3
4
5
6
7
|
#include <stdio.h>void main(){int a[4]={1,2,3,4};printf("%d \n",*(a+2));printf("%d \n",a[2]);} |

负值下标
|
1
2
3
4
5
6
7
8
9
|
#include <stdio.h>void main(){int a[4]={1,2,3,4};int *p;p=a+2;printf("%d \n",*(a+1));printf("%d \n",p[-1]);} |

下标引用可以作用于任何指针
|
1
2
3
4
5
6
7
8
9
|
#include <stdio.h>#include <math.h>void main(){int a[4]={1,2,3,4};printf("a[0]->%d \n",a[0]);printf("1[a]->%d \n",1[a]);printf("a[1]->%d \n",a[1]);} |

c 函数及指针学习 3的更多相关文章
- C函数及指针学习1
1 大段程序注释的方法 #if 0#endif 2三字母词 以两个问号 开始的都要注意 3 字面值(常量) 在整型号字面值后加 字符L (long),U(unsigned)说明字符常量 为长整型 或( ...
- c 函数及指针学习 10
标准库函数 1算数运算stdlib.h 2随机数stdlib.h 3字符串转化stdlib.h 4数学函数 math.h 5日期和时间 time.h 6信号 signal.h 7打印可变参数列表std ...
- c 函数及指针学习 9
指针的高级应用 处理命令行参数 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #include <stdio.h> int main(int ar ...
- c 函数及指针学习 7
1.结构的存储分配 1 2 printf("%d \n",sizeof(char)); printf("%d \n",sizeof(int)); int 类型为 ...
- c 函数及指针学习 5
聚合数据类型 能够同时存储超过一个的单独数据. c语言提供了数组和结构体. 1. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include <stdio.h> # ...
- c 函数及指针学习 4
1数组和指针声明的差别 声明数组:为数组分配内存,为数组名分配内存(指针常量 4个字节) 指针:为指针分配内存(指针变量 4个字节) 1 2 3 4 5 6 7 8 9 10 #include < ...
- C函数及指针学习2
1.break 永久终止循环,continue 结束当前循环 2.switch 每个case标签要有唯一值,(且为常量或常量表达式) 不加break 时执行流会贯穿整个case 标签 3 赋值操作符 ...
- c 函数及指针学习 8
联合体 1 2 3 4 5 6 7 8 9 10 11 12 13 #include <stdio.h> union sa { double a; int b; ...
- c 函数及指针学习 6
不完整声明 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 /* 方法一 */ struct tag_a{ ...
随机推荐
- c# 多线程创建 ---简单
Thread t = new Thread(new ParameterizedThreadStart(UploadCard)); t.IsBackground = false;//后台线程 前台线程 ...
- SQL with PL/SQL
DDL commands --> create user / table / view / sequence alter DML --> data manipulation languag ...
- android启动模式2
Android中的启动模式(下) 在这篇文章中,我会继续跟大家分享有关于Android中启动模式的相关知识.当然,如果对这个启动模式还不完全了解或者没有听过的话,可以先看看我之前写的有关于这个知识点的 ...
- iOS 获取当前月份的天数(转)
在这里我很鄙视百度,尼玛 竟然每一个我想要的结果...最后还是用google弄到的.日前又需要自己以后慢慢研究 1. 获取当前月份有多少天 NSCalendar *calendar = [NSCale ...
- 生成1~n的全排列
输入正整数n,输出n的全排列. 样例输入1: 3 样例输出1: 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 分析: 按字典序从小到大的顺序输出所有的排列. (字典序:两个序 ...
- xcode插件种类
古人云“工欲善其事必先利其器”,打造一个强大的开发环境,是立即提升自身战斗力的绝佳途径!以下是搜集的一些有力的XCode插件. 1.全能搜索家CodePilot 2.0 你要找的是文件?是文件夹? ...
- Ubuntu 14.10 下安装Synergy,不同电脑之间公用一套键盘鼠标
因为工作时候有多台电脑放在一起,如果每个用一套键盘鼠标很是不方便,所以希望能够不用电脑之间公用一套键盘鼠标. Synergy可以实现不同电脑之间公用一套键盘鼠标,并且支持简单的复制粘贴.很好用. 它还 ...
- encodeURIComponent编码2次
最近在项目中发现前台在往anction中发送数据时进行两次encodeURIComponent,经过上网查找发现以下解释比较合理,mask过来,以供参考,非常感谢原作者!!! 两次encodeURIC ...
- Java Inner class && nested class
Java中,Inner Class(不被 static修饰)可以访问outer class 的所有成员(包括私有成员),同时,内部类 的创建必须经由外部类的实例! nested class 有stat ...
- linux基础命令学习(四)计划任务
一.计划任务 crond服务简介 linux任务调度的工作主要分为以下两类: *系统执行的工作:系统周期性所要执行的工作,如备份系统数据.清理缓存 *个人执行的工作:某个用户定期要做的工作,例如每隔1 ...