c语言知识点-创新互联

文章目录
    • 一:c语言应用范围
    • 二:指针
    • 三:关键字
    • 四:sizeof
    • 五:格式化输出
    • 六: true与false
    • 七:字符串
    • 八:*与&
    • 九: 为什么主函数要用int main()
    • 十:输入
    • 十一: #include
    • 十二:语法错误与语义错误
    • 十三:printf()
    • 十四:对于\0
    • 十五:#define
    • 十六:getchar()

从策划到设计制作,每一步都追求做到细腻,制作可持续发展的企业网站。为客户提供网站设计制作、网站设计、网站策划、网页设计、域名注册、网络空间、网络营销、VI设计、 网站改版、漏洞修补等服务。为客户提供更好的一站式互联网解决方案,以客户的口碑塑造优易品牌,携手广大客户,共同发展进步。一:c语言应用范围

在这里插入图片描述
现在主要用于操作系统和嵌入式系统

二:指针
  1. 指针必须指向地址,指针作为参数就要传入地址,所以只要是指针就要想到地址

  2. 地址的改变 ①: 加减即可

char *a="abcd";
	printf("%c\n",*a);//传入的只是首地址a
	printf("%c\n",*++a);//第二个地址的数b
  1. 指针数组(自己取得名字)
char *s[2]={"123","222"};
		printf("%c\n",s[0][1]);//输出2
		printf("%s\n",s[1]);//输出222

我的理解 :
没有指针会报错,因为一个下标的地址只能放一个char,然而加了指针则不会报错,我认为是这相当于是一个指针数组,每个下标都是一个指针。

  1. 访问

和数组访问一样可以用下标,访问单个值时只能用%c,%d这些

char *s="0123" ;
		printf("%c",s[2]);//2
三:关键字

typedef 用于起别名,一般用于结构体,比较简便
typedef 类型名 别名
如:

typedef struct{} 别名
typedef int 别名
四:sizeof
  1. 主函数与其他函数传入参数中的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

可以看出只是把头地址传进去了。

  1. 与strlen的区别
    sizeof计算的是整个空间所占用的大小,无论看不看得见
    strlen只是计算字符的长度,用的char*参数,只计算长度不包括’\0’
  2. 使用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与false

0 表示false
其他的数字都表示true

七:字符串

一:由 \0结尾

八:*与&

*表示解析地址(及指针)
& 表示输出这个变量等的地址

九: 为什么主函数要用int main()
  1. 为什么不用main():
    因为c90标准勉强接受,但是c99和c11标准不允许;
  2. 为什么不建议用void main():
    因为只用部分编译器允许这样写,如果这样写程序转移就可能出现错误.
十:输入
  1. 向程序中输入值时,都是保存在缓冲区中,以提高效率,然后再又函数从缓存区一个一个的读取(用空格等方式分割的)。
十一: #include

导入的意思

  1. #include就是把stdio.h文件中的所有内容输入该位置,实际上就是粘贴复制。
  2. #include也是c的预处理指令
十二:语法错误与语义错误
  1. 语法错误:不遵循c语言规则。
  2. 语义错误:意思上的错误,就是程序的编写和自己的目的不同。
十三:printf()
  1. 格式化是否包含#
int a=100;
	printf("%o\n",a);//144
	printf("%#o",a);//0144

由上可得:加了**#会把八进制,六进制完整的输出**。

十四:对于\0
  1. 它是不会被输出出来的.
  2. 在给数组最后一个字符改为0时,0会直接转变成’\0’
char str[10]={'q','w','e','r'};
	str[3]=0;
	printf("%s",str);//qwe
  1. ‘\0’后面的值都不会输出出来。
char str[10]={'q','w','e','r'};
	str[2]=0;
	printf("%s",str);//qw
十五:#define
  1. 宏定义,定义常量和函数,后面不加分号
  2. 定义函数时,函数中运算表达式不要加括号,直接把传入的值带入即可。
#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语言知识点-创新互联
网址分享:http://pwwzsj.com/article/ihpjh.html