c语言知识点-创新互联
文章目录
网站栏目:c语言知识点-创新互联
链接URL:http://ybzwz.com/article/ihpjh.html
- 一:c语言应用范围
- 二:指针
- 三:关键字
- 四:sizeof
- 五:格式化输出
- 六: true与false
- 七:字符串
- 八:*与&
- 九: 为什么主函数要用int main()
- 十:输入
- 十一: #include
- 十二:语法错误与语义错误
- 十三:printf()
- 十四:对于\0
- 十五:#define
- 十六:getchar()
现在主要用于操作系统和嵌入式系统
指针必须指向地址,指针作为参数就要传入地址,所以只要是指针就要想到地址
地址的改变 ①: 加减即可
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 别名
四:sizeof- 主函数与其他函数传入参数中的sizeof算出的值不同(数组)
int 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
可以看出只是把头地址传进去了。
- 与strlen的区别
sizeof计算的是整个空间所占用的大小,无论看不看得见
strlen只是计算字符的长度,用的char*参数,只计算长度不包括’\0’ - 使用sizeof计算数组与对应指针大小
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结尾
八:*与&*表示解析地址(及指针)
& 表示输出这个变量等的地址
- 为什么不用main():
因为c90标准勉强接受,但是c99和c11标准不允许; - 为什么不建议用void main():
因为只用部分编译器允许这样写,如果这样写程序转移就可能出现错误.
- 向程序中输入值时,都是保存在缓冲区中,以提高效率,然后再又函数从缓存区一个一个的读取(用空格等方式分割的)。
导入的意思
- #include
就是把stdio.h文件中的所有内容输入该位置,实际上就是粘贴复制。 - #include也是c的预处理指令
- 语法错误:不遵循c语言规则。
- 语义错误:意思上的错误,就是程序的编写和自己的目的不同。
- 格式化是否包含#
int a=100;
printf("%o\n",a);//144
printf("%#o",a);//0144
由上可得:加了**#会把八进制,六进制完整的输出**。
十四:对于\0- 它是不会被输出出来的.
- 在给数组最后一个字符改为0时,0会直接转变成’\0’
char str[10]={'q','w','e','r'};
str[3]=0;
printf("%s",str);//qwe
- ‘\0’后面的值都不会输出出来。
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元起,快前往官网查看详情吧
网站栏目:c语言知识点-创新互联
链接URL:http://ybzwz.com/article/ihpjh.html