大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
现在主要用于操作系统和嵌入式系统
指针必须指向地址,指针作为参数就要传入地址,所以只要是指针就要想到地址
地址的改变 ①: 加减即可
char *a="abcd";
printf("%c\n",*a);//传入的只是首地址a
printf("%c\n",*++a);//第二个地址的数b
char *s[2]={"123","222"};
printf("%c\n",s[0][1]);//输出2
printf("%s\n",s[1]);//输出222
我的理解 :
没有指针会报错,因为一个下标的地址只能放一个char,然而加了指针则不会报错,我认为是这相当于是一个指针数组,每个下标都是一个指针。
和数组访问一样可以用下标,访问单个值时只能用%c,%d这些
char *s="0123" ;
printf("%c",s[2]);//2
三:关键字typedef 用于起别名,一般用于结构体,比较简便
typedef 类型名 别名
如:
typedef struct{} 别名
typedef int 别名
四:sizeofint str[]={1,2,3,4};
printf("%d\n",&str[0]);//6487552
list=createList(str,length);
LinkList createList(int data[],int length){printf("%d\n",data);//6487552
可以看出只是把头地址传进去了。
char name[10]="goner";
char* str=name;
printf("%d,%d",sizeof(str),sizeof(name));//8,10
因为:sizeof判断的是整个的大小,数组留出了10个所以就是10。注意:指针的8,这儿的判断指针的大小,并不是判断它指向值得占空间大小,而是判断的是指向这个值的指针大小,32位计算机是4, 64位的则是8。
五:格式化输出符号 | 可用 |
---|---|
%s | 可直接输出a[]与*a定义的字符串 |
%c | 可直接输出a[]与*a定义的单个字符 |
%d | 输出数字(可输出地址,整数,) |
int i,j=0;
char a[]="ssss";
printf("%c\n",a[2]);//这儿不能用%s会没有输出结果
printf("%s\n",a);
六: true与false0 表示false
其他的数字都表示true
一:由 \0结尾
八:*与&*表示解析地址(及指针)
& 表示输出这个变量等的地址
导入的意思
int a=100;
printf("%o\n",a);//144
printf("%#o",a);//0144
由上可得:加了**#会把八进制,六进制完整的输出**。
十四:对于\0char str[10]={'q','w','e','r'};
str[3]=0;
printf("%s",str);//qwe
char str[10]={'q','w','e','r'};
str[2]=0;
printf("%s",str);//qw
十五:#define#include#include#define s(x) x*x
int main()
{ printf("%d",s(2+3));// 2+3*2+3=11
return 0;
}
十六:getchar()一个getchar()会从缓冲区接收一个字符
输入:wdfg
int a=getchar();
int c=getchar();
a=w c=d
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧