A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


   亲爱的黑马大家庭,你们好。很荣幸的由于缘分能在这个多元化的21世纪的我们相遇,相知。

开始的一知半解黑马的由来,到现在的相信黑马,  我只想说,我来了!黑马,你知道吗!

53 个回复

倒序浏览
正如,我想说的是
一个人真的人生价值在哪里?
那就是做自己。

好多人都在碌碌无为的度过终生,这难道就是他们的命运吗?
看起来很简单的一件事,却真的很难实现。

就如你问你自己,你想要的是什么?你想做的是什么?

现实是残酷的,但是你有过残酷的面对吗? 最后的结果是那么重要吗?

所以,我选择的编程,选择的iOS软件开发。

这是我想要的。
回复 使用道具 举报
现在的我在自学iOS软件开发的基础——C语言。

从未接触的一种语言,对于我这种初学者来说是很枯燥单调的,但是人要有激情,要有兴趣。

要有一种倔强的情调。

所以我准备把每天看完视频做的一些笔记上传上来。  

分享,共勉。
回复 使用道具 举报
2015.06.27


1、算式运算的类型转换

1)隐士类型转换(直接转换)
int——>直接转换成float 类型

2)显示类型转换(强制类型转换)
在所需要的类型前面添加所需要转换的格式。
如 小数类型需转换成整数类型
int main(){

float  f1=23.4f;
int  num = 10;
int sum = f1+num;
printf ("%d = sum,int(f1)\n"+num);
reture 0;
}

2、算式运算的类型转换的注意事项
1)大数加小数,应保持有效数字的格式,float的精确有效数字为7位。
2)显示类型转换只是临时转换,对于原有的数字还是保持原来的数字。


3、赋值运算符

表达式:  常量、变量及函数用符号链接起来的表达式,具有一定的意义。
表达式用分号结束。  1+1;
表达式的重点,  一点会有返还值。

赋值运算符的的定义  就是   =
  
赋值运算符的优先级为14级。
                   结合性为右结合。  自右向左。

如,   a=b=c=10;

不成存在  int a= b =c = 10的情况。

4、复合赋值运算符
        +=
         -=
         *=
         \=

    如  a+=b
     就是a=a+b  以此类推

5、自增自减运算符

分为  前缀自增自减 如++a  、  --a
        后缀自增自减     a++  、 a--

跟随自增自减运算连接的只能是变量a  不能为其他数或者表达式

   前缀自增自减运算符的算法  
    ++a     表达式的值为a+1     a的值为a+1  
                                            其实就是表达式的结果就是  a的值先变+1后用作用为表达式
                                                         简称  先变后用
  后缀自增自减运算符的算法
   a++     表达式为a的值         a的值为a+1
                                              其实就是表达式的结构就是a的值    而a的值+1
                                                           简称   先用后变


                                      但是不管怎么变化  a的值都+1

自增自减优先级   自增自减为二级。。  应提前计算
             结合性    自增自减应满足  右结合性  如  (a++)+(b++)+(c++)
                      先看变量,然后从加号的右边开始计算。
回复 使用道具 举报
2015.06.28

1、sizeof 运算符的使用
sizeof 表示  计算 常量、变量在内存中所占的字节


sizeof();    不是一个函数


1)sizeof计算常量的方法
   sizeof (10);  计算一个int类型的常量10 在内存中所占的字符     //4
   sizeof (2.3f);  计算一个float 类型的常量2.3f 在内存中所占的字符   //4
   sizeof (2.3);   计算一个double 类型的常量 2.3在内存中所占的字符   //8
   sizeof(‘a’);   计算一个char  类型的常量 ‘a’在内存中所占的字符  //4


注意1、计算sizeof 常量字符的时候  所占内存的字符为  //4


2)sizeof计算变量的方法
    sizeof (a);  计算一个int类型的变量a 在内存中所占的字符     //4
   sizeof (2.3f);  计算一个float 类型的变量2.3f 在内存中所占的字符   //4
   sizeof (2.3);   计算一个double 类型的变量 2.3在内存中所占的字符   //8
   sizeof(‘a’);   计算一个char  类型的变量 ‘a’在内存中所占的字符  //1


计算sizeof 变量字符的时候  所占内存的字符为  //1


在sizeof 运算符计算 常量、变量的时候 ()可以省略。


3)sizeof 计算数据类型的方法
    sizeof (int);  计算一个int类型的数据在内存中所占的字符     //4
   sizeof (float);  计算一个float 类型的数据在内存中所占的字符   //4
   sizeof (double);   计算一个double 类型的数据在内存中所占的字符   //8
   sizeof(char);   计算一个char  类型的数据在内存中所占的字符  //1


在sizeof 计算数据类型的时候 ()不能省略。




2、逗号运算符。


逗号表达式:  多个表达式用逗号隔开的表达式为逗号表达式。
   a+b,b+c;


逗号表达式的算法;  依次算出每个表达式的结果,  以最后一个表达式的结果作为整个逗号表达式的结果。
    a+b,b+c,10           //10就是逗号表达式的结果


逗号表达式是可以嵌套使用的。


  (a+b,(b+c,b-c))   //逗号表达式的结果就为b-c的结构


逗号表达式有时候是用来简化代码,不需要结果,而重过程。


不是所有用逗号表示的都叫逗号表达式            //在定义多个变量用逗号隔开的时候,就不是逗号表达式。


//  int a = 1, b = 2, c = 3;  这就是不是一个逗号表达式。




3、关系运算符


C语言中所有的数据都有真假性,非零及真。


    关系运算符分为   
       >   
       <
       >=
       <=                      // 以上均为6级
       !=                      //         7级
       ==                       //        7级


  在关系运算符中 一个等于号叫赋值, 只有两个等号才叫等于。
关系运算符的作用是  用来比较两个数或者两个表达式的关系




关系表达式的值只有两种,非0及真  (1)
                        0就是假  (0)


关系表达式就是用关系运算符链接起来的表达式为关系表达式


用分号结束的关系表达式叫关系表达式语句


关系表达式的结合性为   左结合


关系表达式的运算过程。   应遵循所有数据中的关系,非零及真
回复 使用道具 举报
今晚把运算符都看完了。

把已看完视频总结的笔记记录下来。

1、逻辑运算符

     分为   与 &&
            或丨丨
            非 !

   逻辑表达式   就是用逻辑运算符连接起来的表达式叫做逻辑表达式

   逻辑表达式的值    也分为两种  非零及真 // 0 1


   && 的优先级为   // 11级     结合性为  左结合
   丨丨的优先级为  // 12级               左结合
    !的优先级的   // 2级                右结合    (!(!(!a)))

有关  &&  运算的结果为  同真为真  一假为假
      丨丨              一真为真   同假为假
       !               真变假    假变真


有关逻辑运算符的短路问题

&&  一假为假  
A&&B   A为假 , B就不会执行

丨丨   一真为真   
A丨丨B   A为真,B就不会执行


int a = 2,b=3,c=4 result=-1;
      //   
  result= ++a&&++b丨丨++c;

printf("result = %d\n",result)              //1
printf("a = %d,b=%d,c=%d\n",a,b,c)          // a = 0  b=0  c=1


二、三目运算符

具有三个操作数

三目运算符的表达式为      表达式1?表达式2:表达式3  ;
  
三目运算符的计算          表达式1为真的话   表达式2的值就作为整个三目运算符结果的返回值
                          表达式1为假的话   表达式3的值就作为整个三目运算符结果的返回值  

对于三目运算符的结合性 为右结合

a?b:c?d:e   //  a?b:(c?d:e)
回复 使用道具 举报
你是黑马哪期的?
回复 使用道具 举报
cemabenteng 发表于 2015-6-29 23:45
你是黑马哪期的?

我还没报班呢。
自学中
回复 使用道具 举报
昆哥的狗 发表于 2015-6-29 23:50
我还没报班呢。
自学中

把视频至少看一遍再来
回复 使用道具 举报
cemabenteng 发表于 2015-6-30 21:53
把视频至少看一遍再来

  正在看呢。  一边看一边学习吧,夯实基础,才能为以后的道路铺平更多的障碍。
回复 使用道具 举报
今晚看到了
第四天。

程序的结构。  这个由于高中数学有所涉及。 看起来没多大问题。  占了5个小视频。  把所做的笔记分享出来吧。





/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


C语言中的程序结构


1、C语言中的程序程序结构

1)顺序结构
2)分支结构  =   条件结构
3)循环结构

又分为  1、while 循环语句  2、 Do while循环语句  3、for 循环语句


2、if 语句的介绍跟使用

if 语句是 分支语句的一部分


if的结构        if(表达式\常量\变量){
                          语句块1;
                                  }
                         后续语句;

          判断小括号的值    1、  为真    执行语句块的内容
                            2、  为假    不执行语句块的内容


if。。。else  的结构

                if(表达式\常量\变量){                //  表达式为真   执行语句块1
                          语句块1;
                                  }else{
                           语句块2         }           //   表达式为假  执行语句块2



             注意: 不论表达式为真还是假  都会执行一个语句块


补充:  有关if 结构的嵌套  

                if(表达式1){
                      语句块1 ;                 //表达式1为真 直接执行语句块1
                        }  else  {
                        if(表达式2){          //  表达式1为假  执行else里面的内容   
                        语句块2;                                       //   如果表达式2为真    则直接执行语句块2
                           }else{                                    
                          语句块3;                                     //   如果表达式2为假    则直接执行语句块3
                           }   
                        }
回复 使用道具 举报
由于昨天出差。
坐车坐了6个小时。



记录的笔记没有发出来。

现在发出来。。。。

1、有关if语句的高级用法


             if(表达式1){                                   //代码块1执行的话      表达式1为真
                     代码块1
                          } else if (表达式2){              //代码块2执行的话   表达式1为假   表达式2为真
                           代码块2
                                  }  else  if(表达式3){
                                     代码块3                 //代码块3执行的话   表达式1、2为假  表达式3为真
                                             }  else{
                                        代码块4}            //代码块4执行的话   表达表达式1、2、3均为假




2、有关if语句的注意事项


1)有关空语句的使用      int a == 3
                      if(a>3);     表示为空语句。   不执行语句。

2)不加大括号的if使用,直接运行下一句链接的语句    (如果if 后面只有一句话,可以直接省略大括号)
                       int a ==3
                            printf "正确\n";

3)有关永真跟永假的使用   
                    int(1){   }    表示为永真
                    int(0){   }    表示为永假
4)有关return 0的使用

                 在一个函数中,可以有多个return 0;的出现。
                              但是出现一个只会程序将终止。  不会再执行以后的代码内容。
回复 使用道具 举报
1、有关switch语句的使用

  switch(表达式){                      //先判断表达式1的内容。  然后对case里面的表达式进行比较,如果相同就执行对应语句
       case 常量表达式1:  语句1         //表达式等于表达式1    执行语句1
       case 常量表达式2:  语句2         //表达式等于表达式2    执行语句2
       case 常量表达式3:  语句3         //表达式等于表达式3    执行语句3
       case 常量表达式4:  语句4         //表达式等于表达式4    执行语句4


          default   语句5                //如果表达式跟case中的表达式都不相同 则执行default 中的语句
                          }               



          有关switch语句中的注意点。
1、case之后跟空格  用冒号隔开:   
2、有关case 的穿透问题。

         在一个switch语句中,  结束语句如果不用break链接,case会接着下一段case语句

                            所以有关case的穿透:   某个case语句执行完成后,并没有结束,而直接向下执行其他的case语句


避免case穿透     :  我们需要在每一个case语句结束后,家伙是哪个一句话,  break;
      break  作用就是结束switch语句


2、  有关if与switch语句的转换问题。

      在分支结构语句中, if与switch是可以相互转换的。

          如果分类数据比较大且范围内容比较广,可以使用if语句
          如果判断内容比较少,if使用的代码量比较大  这时候可以使用switch 语句。
回复 使用道具 举报
switch语句的注意补充事项

  格式:     switch(表达式){
              case 常量表达式: 语句1;
                          break:
                         default  语句
                                }

1、有关switch表达式
    1)可以为整形常量   //  stitch(10)
    2)可以为整形变量   //  int a = 2;   switch(2)   
    3)可以为返回值为整形的表达式             // stitch(5+5)  
    4)可以为转换为int类型的表达式            //switch(‘a’)


case后面可以有多句语句。
case语句后面可以加括号,也可以不加括号。
case语句后面的语句可以加break也不可以不加break。



2、有关case语句表达式
    0)case后面的空格跟冒号不能省略
    1)可以是常量   //case 10:
    2)可以是常量表达式   //case 5+5:
    3)default 的位置可以随便放。  
    4)case语句的穿透同意适应于default
    5)default 如果放到switch语句最后可以不加break;  。  但是不是最后必须要加上braek;
    6)case后面不能是小数
    7)case语句后的默认的第一句话不能定义变量。 // 如果非要定义变量的话 必须要加上大括号。  第二句可以定义变量
    8)编译器的BUG   
回复 使用道具 举报
循环结构。


循环结构就是   在结构语句中有一部门符合循环控制条件,在某一部分重复执行代码块,我们把这样的结构叫做循环结构。

循环结构的组成    1)循环控制条件
                  2)循环体
                  3)循环控制条件为假的控制


1、有关while循环结构的表示

  while(表达式){
         语句块1;
                }

               

  while循环的一个陷阱:就是一直执行循环体中的代码 不会退出。
回复 使用道具 举报
有关   do while的结构表示方法
    do{
         语句1 ;                               //循环体
         语句2;
               }
        while(条件);


  do while是一个直到型循环,而while是一个当型循环。


注意:
1)do while 不论循环控制条件是否为真,循环体最少执行一次。
回复 使用道具 举报
有关for循环结构
1、for 循环结构的表示方法

   for(表达式1;表达式2;表达式3){
                          语句             //循环体
                                    }   //表达式1为定义变量,表达式2为循环控制条件,循环3为中止循环控制条件


  一般是    表达式2->循环体->表达式3  ->表达式2.。。。。。。


2、表达式1、表达式2,表达式3  均可省略。

3、         有关for循环的死循环为  for(;;){
                                               }  //为for循环的死循环。

4、  有关for循环的空语句   for(表达式1;表达式2;表达式3);


5、for循环的镶嵌   
              for(表达式1;表达式2;表达式3){
                      for(表达式4;表达式5;表达式6)
                                                }

7、for循环镶嵌的应用。
1)打印星型矩形     
* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * * *
* * * * * *                   for(int i=0;i<6;i++){
                                  for(int j=0;j<6;j++)

                                        printf("* ");
                                                    }

2)打印正三角形
*
* *
* * *
* * * *
* * * * *
* * * * * *                   for(int i=0;i<6;i++){
                                   for(int j=0;j<i;j++)
                                            printf("* ");
                                                      }
3)打印倒三角形
* * * * * *
* * * * *
* * * *
* * *
* *
*                              for(int i=0;i<6;i++){
                                   for(int j=0;j<6-i;j++)
                                            printf("* ");
                                                      }
打印9*9乘法表        
1×1=1  
1×2=2 2×2=4  
1×3=3 2×3=6 3×3=9  
1×4=4 2×4=8 3×4=12 4×4=16  
1×5=5 2×5=10 3×5=15 4×5=20 5×5=25  
1×6=6 2×6=12 3×6=18 4×6=24 5×6=30 6×6=36  
1×7=7 2×7=14 3×7=21 4×7=28 5×7=35 6×7=42 7×7=49  
1×8=8 2×8=16 3×8=24 4×8=32 5×8=40 6×8=48 7×8=56 8×8=64  
1×9=9 2×9=18 3×9=27 4×9=36 5×9=45 6×9=54 7×9=63 8×9=72 9×9=81                                
                                                                       for(int i=1;i<=9;i++){
                                                                           for(int j=1;j<i;j++)
                                                                              printf("%d*%d=%d",i,j,i*j );
                                                                                           }

3、break语句的使用

               break语句是跳出循环或者是结束循环。

4、continue语句的使用。

                 continue语句是结束本次循环,继续下一次循环。   能加快for循环语句。
回复 使用道具 举报
C语言是由函数组成的                              在C语言中,函数是一个面对过程的。
   函数就是独立功能的代码段组合而成的。


有关自定义函数的写法。

   返回值类型  函数名(参数){

                         函数体;  
                              }

1)无参无返回值函数
            void (){
                             }


2)无参有返回值函数
           
例子:    int print(){
                            }     


注意:  有返回值的情况下,函数体中一定会有return  语句。

3)有参无返回值函数

          void print(int n){                       //参数的话也叫形式参数表列  简称形参            
                                  }                            对于形参的表示方法为  数据类型 变量名

4)有参有返回值的函数
例子:    int sum(int x,inty){
                                  }



有关函数中的参数
1、可以分为形式参数跟实际参数

形式参数简称为形参       一般为定义函数  函数名后面的小括号内。
实际参数简称为实参       一般为主调函数  函数名后面的小括号内。

2、实参可以为变量、常量、表达式及函数。

3、
1)形参定义后并不会立即分配存储空间  在函数调用的时候才能真正分配到存储空间
2)如果有多个形参,可以用逗号分隔
3)形参的类型可以不相同
4)在函数中不能定义和形参相同的变量

4、主调函数:

    void test1(){
                    }

    void test2(){
         void test1()
                      }


   void  test2  就为主调函数,  void test1 就是被调函数
     //在主调函数中的参数就是实际参数     在被调函数中的参数就是形式参数

5、有关参数的传递过程

   1)调用函数的时候,实参的值是一个确定的值
   2)把实参的值,赋值给形参
   3)形参跟实参的个数、类型要一致
          如果类型不一致,会造成精度丢失
   4)形参的值在函数内部可以被修改,但是不影响主调函数中实参的数据。
回复 使用道具 举报
安3520 来自手机 中级黑马 2015-7-8 00:08:36
19#
点点滴滴到底
回复 使用道具 举报
今天把函数的内容简单的大概看了一遍。  当然还是有看不懂的需要不断的磨合。
同时希望在接下来的日里能好好吃透视频上讲解的一些内容。

本章的知识点都是打基础的,还是需要多加练习很巩固。关于Xcode 的使用 由于没有实机操作,就是很快的过了一遍。希望尽快的看完基础课能有机会来黑马努力学习吧!
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 加入黑马