精华内容
下载资源
问答
  • 2018-09-30 09:41:01

    C语言细节整理
    这篇文章是用于自己本身对c语言进行的一些整理,如果对大家有帮助的话,记得转发出去让更多人了解哦。
    这是我对c primer plus这本书的整理,所以可能和一些书籍顺序会不同,本文章和这本书一起使用最好,我也会对一些书中重要的方面批注页码的。
    第一章
    关于第一章,其实可以省略过去,建议在看完后面在重新回来看这章,中间的一些历程,一些话就可以理解,对于刚刚开始学习的新手这一章可以当作故事书来看,后面再回看会发现很多好东西。
    我在这里还是写一点关于第一章的知识。其一,就是编译器,我们练习c语言代码的时候需要一个好的编译器来运行我们的c代码,不同的编译器对代码的编写方法和规范都不一样,比如有些代码在c free中可以运行,但是到dev-c++中就会报错,这是很正常的,不需要担心,只要自己主规范即可。其二,使用c语言的步骤和环境,c语言的步骤包括了7个小步骤(1.定义程序目标 2.设计程序 3.编写代码 4.编译 5.运行程序 6.测试和调试程序 7.维护和修改代码)具体请看书p7-9 c语言测试环境,一些编程机制,这个其实很复杂,但是对我们来说,并不需要这么细节,我们有一台Windows的或者苹果系统的电脑,加一个编译器就好,就可以运行代码了,学到后面再回头看这章比较好(像具体了解的话咨询p10-15)
    第二章
    这一章可以说是真正的编程开始,介绍了printf()函数,这是c语言中出现最多的输出函数,还有main()函数和return语句和一些要注意的习惯,现在我们一步步来。
    先看一串代码
    #include<stdio.h>
    Int main(void)
    {
    printf(“I am c yuyan .”);
    return 0 ;
    }
    我们先来看一下这个代码输出什么,其实就是在框架中输出 I am c yuyan.这句话,记住,在printf语句中双引号(“”)中间的语句就是要输出的东西,有些同学可能书上在printf语句中会出现%d这种东西,比如:printf(“%d love me .”a);这样的语句,这个语句意思就是将a中的内容放在%d这个位置,以%d型号输出(各种输出方式详细见p83),详细的printf语句在第4章节会讲的。
    第一个#include<stdio.h>是什么意思呢,就是预读取stdio.h这个文件中的一些资料,一般来说大部分我们调用的函数都来自这里。
    Int main(void)有些地方不写void这个没什么关系,但是习惯要好一点,养成写void的习惯,这个语句和return 0这两条语句都是大部分语句所必须的。
    {}这个花括号里面就是我们要执行的代码了,用这个括号将其包括,以{开头}结尾。
    现在给大家一点注意事项的提醒:

    1. c语言不一定需要输入和输出,因为这点可以使c语言轻便,所以使用更加广泛。
    2. 熟悉passcal,ada,modula-2等会明白{}在c语言中类似于这些语言的begin和end。
    3. C语言不支持直接使用变量,这一点和其他语言不一样,如果你在c语言中直接写入a=3这条语句是不行的,首先一定要定义 int a;将其定义为整形(变量命名见p44)才可以给其赋值,这么定义是为了提高语句的可读性。
    4. C语言中代码区分大小写(无论是语句还是定义都是如此)
    5. 编译器无法检查语义错误,编译器只会告诉你函数格式错了之类的,并不会告诉你为什么和想的不一样,这点需要自己好好研读才可以发现。
    6. 养成一个良好的习惯,不要把语句写的长,尽量写的清晰排版整齐,以后代码写长来才明白这点有多重要。
    7. 用/* 和 */来写批注,批注只是为了帮助自己看的懂代码,对运行一点帮助都没有,在普通语句后面加上//,中间是批注。

    今天的分享先到这里,如果觉得本文有用可以点个赞转发一下,有什么问题或者建议都可以发邮件给我,我们一起探讨问题:1349021570@qq.com或者qq1349021570。希望大家多多支持,以后会继续努力的。

    更多相关内容
  • C语言细节笔记

    2015-08-03 22:55:17
    这是我个人以及在学C过程中做的笔记,仅供参考
  • c语言细节

    2021-11-15 22:31:20
    C语言中,0为假,非0即为真。全局变量,没有给初始值时,编译其会默认将其初始化为0。i的初始值为0,i--结果-1,i为整形,sizeof(i)求i类型大小是4,但是sizeof的返回值类型实际为无符号整形,因此编译器会自动将...

    上图:

    答案:    >   

    解释·:

    C语言中,0为假,非0即为真。全局变量,没有给初始值时,编译其会默认将其初始化为0。i的初始值为0,i--结果-1,i为整形,sizeof(i)求i类型大小是4,但是sizeof的返回值类型实际为无符号整形,因此编译器会自动将左侧i自动转换为无符号整形的数据(类型转换),-1对应的无符号整形是一个非常大的数字,超过4或者8,故实际应该>。

    展开全文
  • C语言细节操作 &a+1 (两图解决一切)

    多人点赞 2021-11-18 15:38:19
    一件有趣的事情; 表达式中 如果出现 &a+1,究竟加多少,二话不说直接上图说明一切!!!! 总结!!! 当表达式 中出现 int p=&a+1的时候, +1所加的大小 是 a所占的大小; ...a的类型应...

    一件有趣的事情;

    表达式中 如果出现  &a+1,究竟加多少,二话不说直接上图说明一切!!!!

    总结!!!

            当表达式 中出现 int p=&a+1的时候,  +1所加的大小  是 a所占的大小;

                    即&a, 得到不仅仅是a的地址,还有a的类型;这个借助指针的赋值来理解;当我们创建一个指针时,是这样创建的

    int a=10;
    int* p=&a;

    理所当然, 当我们正常定义一个 指针时,&a的类型应当也属于 int*;而当我们将&a强制转换成(char*)类型的时候,由指针的加减可得,(char*)&a+1,加的就是1个字节 (char所占的大小)

                    对于数组  若int p=&arr+1       所加的大小就是 整个数组arr所占的大小;

                    当然如果 直接 int p=arr+1      因为数组名称本就是首元素的地址,+1理所当然是数组元素的大小

    最后附上代码,和数组图片,帮助大家进行更好的记忆

    补充: 

            1. sizeof(数组名),计算整个数组的大小, sizeof内部单独放一个数组名,数组名表示整个数组。
            2.&数组名,取出的是数组的地址。&数组名,数组名表示整个数组。

    除此1,2两种情况之外,所有的数组名都表示数组首元素的地址。

     

    int main() {
    	int a = 2;
    	int arr[10] = { 0 };
    	int p = 0;
    	printf("(int*)          &a==%d\n", &a);
    	p = &a + 1;
    	printf("(int*)          &a+1==%d\n", p);
    	p = (char*)&a + 1;
    	printf("((char*)        (char*)&a+1==%d\n", p);
    	printf("\n");
    
    	printf("(int arr[10])   &arr==%d\n", &arr);
    	p = &arr + 1;
    	printf("(int arr[10])   &arr+1==%d\n", p);
    	printf("(int arr[10])   arr==%d\n", arr);
    	p = arr + 1;
    	printf("(int arr[10])   arr+1==%d\n", p);
    
    	p = p + 1;
    	printf("(int p)         p+1==%d", p);
    
    	return 0;
    }

    展开全文
  • C语言细节注意

    2018-09-27 16:27:00
    前段时间用C语言写了个小的程序,也算是复习了下好久没有用的C语言。也是有好多的坑了,哈哈。 1.C语言的结构体  结构体的命名最好能够做到规范。因为不同的 编译环境下,不是很规范的命名有时候会导致...
  • 符号有无细节见程序举例二、符号优先级*p++被编译器解释成*(p++)三、breakswitch语句中四、其它细节a、最简单的C语言程序为main(){}注意在有些开发环境可能这样还不能运行,在cfree就说无法定位,在linux用gcc编译...
  • 问题 代码 #include <stdio.h> #include <math.h> int main() { double a = 2,y; long int n=1; do{ y=a; n+=1; a=pow(1+1/(double)n,(double)n); }while(a-y>...
  • 主要内容:const变量初始化、数组大小用const变量细节、const变量与#define宏、volatile修饰一、const变量初始化时必须赋值二、const变量在C++中可以做数组大小元素、在C中不行,因为它是变量三、const和#define区别...
  • c语言细节知识点

    2013-12-20 12:35:06
    Offsetof是C语言的一个宏;(size_t)&(((s*)0)->m) 求一个结构体的偏离量: (s *)0 是骗编译器说有一个指向类(或结构)s的指针,其值为0  &((s *)0)->m 是要取得类s中成员变量m的地址  由于这个类(或...
  • 问题 求下列输出x的结果 for(i=0,j=0;i<...用C语言 #include <stdio.h> int main() { int i,j,x=0; for(i=0,j=0;i<6,j<10;i++,j++) { printf("i=%d,j=%d\t\t", i, j); x = i + j;
  • 主要内容:函数无参数时细节、函数默认返回int型证明、return默认还回值、void指针++操作一、函数无参数时细节函数无参数时应该加上void在c语言中一个函数void f();在使用时传递参数f(2);没有报错,而在c++中则会...
  • 读取有长度上限的整行内容:[<p>=]fgets(<var>... //参见 C语言细节.字符串.二.2.(2) 输出字符串到指定位置:fputs("<str>",<pos>); //参见 C语言细节.字符串.三.2
  • 参见 C语言基础.动态内存分配 部分

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 99,419
精华内容 39,767
关键字:

c语言细节