學習筆記壹

C/C++學習筆記:不好取名字,所以用學習筆記代替!

關於main()函數的參數問題,這個問題,是在我將自己電腦的C語言編程環境換成了命令行之後發現的問題(Windows下的命令行版gcc,我也是無語了~)。那就先記一記我的命令行環境的配置吧~

其實最初這個想法是因為受夠了機房無語的環境了,C—freeVC6.0我都是用不慣的,所以我一開始是用的自己的DEV-C,這個軟件真的不是一般的好用,當然咯,這是對於初學者,對於大型程序的開發,它就有點顯得太渣了。但是機房的還原卡會讓我每次使用前進行一次安裝,十分無奈之下,我就想到了為何不配置一個命令行版本的編程環境,靈感來源於java的命令行編程環境。

於是說幹就乾(反正上機課在機房也沒事做),於是我就從DEV-C里提取出MinGW(複製一下),其實DEV-C也用的MinGW這個我早就知道了。然後將MinGW文件夾放到D盤根目錄下(機房還原卡只還原C),然後在我的電腦的高級設置里面的環境變量里面Path項里面加上一句D:/MinGW/bin;就可以了。其實醬紫命令行環境就配置好了!!

然後調用windowscmd.exe我的辦法是從system32文件夾裡複製一個到自己的編程目錄下,醬紫就很方便了。然後就是用記事本(Notepad.exe)(也是windows自帶的)寫代碼,然後用gcc命令編譯,用gdb調試。感覺真的不錯哦~

現在我又在我的電腦上裝了個VIM,正在學習使用VIM,雖然還只是學了個皮毛,不過趕腳這個編輯器真的不錯!!!即使是在windows這個坑爹的平台下!!

具體的編譯命令是醬紫的(test.c)為栗子:gcc –otest test.c,這樣就可以將一個.c文件編譯成.exe文件了,但是,也可以直接gcc test.c不過這個是默認的模式,其實這個命令我也是在百度學的(百度真的是個神器)。這樣,然後問題就來了,作為一個程序,gcc後面的參數是怎麼來的?

我深入探究這個問題,發現其實我以前學的C語言一直陷入了一個誤區。

以前我都是醬紫寫主函數main的:intmain(){…..;return 0;}

後來我發現其實return 0可以不寫,編譯器會自動添加的。後買我又發現,不帶參數的main函數應該醬紫寫:int main(void) {}

然後又發現其實我以前寫的無參函數都寫錯了,例如char get(){};其實應該是醬紫寫的char get(void) {},但是為什麼我以前都沒發現這個錯誤呢(其實也不叫錯誤啦~)?因為大家都這麼寫的。。。笑抽~

然後我就發現 其實main函數也是可以帶參數的 真正的main函數的格式  int main(int argc,char *argv[]){}

但是這個參數是幹啥子用的呢?具體的描述我還沒想出來,也許是因為學的還不夠深入吧~但是可以通過一個程序來理解~

#include<stdio.h>

int main(intargc,char *argv[]){

         for (int i = 0; i < argc; i++)

                   printf("%s\n",argv[i]);

         putchar(10);

}

編譯后運行(命令行下~)這個程序你會發現很神奇~它會將你的輸入分行輸出,例如我們輸入

test sdjkfng this is a sb             (test後面可以添加用戶的一些命令)

按回車運行之後,命令行下會輸出這樣的結果

sdjkfng

this

is

a

sb

test命令後面輸入不同的字符串,就輸出不同的字符,然後,我就理解了~

 

然後是對於C++學習的一些感想:

前段時間,從圖書館借了一本C++教程,馬基課上無聊了就自學!

新學到的知識:

         變量的引用:引用是C所沒有的,作用是給變量取別名!

引用的聲明格式:類型標識符 & 變量名;

         引用的作用:給變量取別名(本質),具體用途 傳遞參數 使用引用函數給賦值表達式做左值(很重要)

栗子:1int a; int &ra = a;

說明:不能這樣寫 int&ra; ra = a;

2int check(int &a,int &b){};

說明:其實這個可以用指針寫,但是醬紫使用引用的話,比指針要方便,因為對於指針變量,每一次需使用或修改變量都要使用*進行取值運算,但是引用不需要,它可以直接使用,然後就是,使用指針的話,其實還是申請了新的變量,這還是需要內存空間的,但是引用是不需要申請新的內存空間的,本質上并沒有產生新的變量!

3

int a[10],error = -1;

int &put(int);

 

put(9) = 1299;                         //a[9] = 1299;

put(10) = 12;                          //error = 12;

 

int &put(int n){

              if(n>0&& n<10) return a[n];

              else returnerror;

}

說明:使用引用定義函數時,不能返回局部變量,具體原因很簡單:因為退出函數時,局部變量會被釋放。這個功能真的很墻大!!!

接下來就是關於C++的墻大的面向對象的所謂的對象的東西;由於這部分內容真的很難,所以儘管看了很多遍書,但還是有很多的不懂!

C++的對象由類(class)來實現:

栗子:

class clock{

     private:

              int hour,minute,seconds;

     public:

              set(int h, int m,int s);

     protected:

              char *Name;

}

 

說明:這是一個類的具體的定義,class之內的部分叫做類的成員,成員分為三種類型,privatepublicprotected,其中,private的私有成員只能被類之內的操作訪問和修改,而public的公有成員是對外的接口,protected只能被該類內的和該類的子類的操作訪問;

然後還有什麼構造函數,析構函數,構造拷貝什麼的太難了!!這次學習筆記就這麼多吧~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学习MATLAB时,编写学习笔记是一种很好的方法,可以帮助您记录重要的概念、语法和技巧,以及解决问题的步骤。以下是一些关于编写MATLAB学习笔记的建议: 1. 组织结构:使用清晰的标题和分节来组织您的学习笔记。将不同的主题分成单独的部分,并使用子标题来进一步细分内容。 2. 内容概要:在每个部分或子标题下,写下该主题的概要。这样可以帮助您回顾和理解该主题的关键点。 3. 示例代码和输出:对于每个主题,包括一些示例代码和相应的输出结果。这有助于您理解和演示具体的MATLAB语法和功能。 4. 问题与解答:如果您在学习过程中遇到了一些困惑或问题,将其记录下来,并在笔记中提出并解答这些问题。这样可以帮助您深入思考并加深对该主题的理解。 5. 笔记补充:除了基本概念和语法外,您还可以添加一些额外的笔记,如最佳实践、编程技巧、常见错误等。这些额外的笔记可以提供更多的实用信息和提示。 6. 参考资料:在您的学习笔记中,包括引用的参考资料,如教程、文档、书籍或网站链接。这样,您可以随时回顾并深入研究相关的主题。 7. 总结和复习:在学习笔记的结尾,添加一个总结部分,回顾和总结您学到的重点和关键概念。此外,定期复习您的学习笔记也是加深理解和记忆的好方法。 以上是关于编写MATLAB学习笔记的一些建议。希望这对您有所帮助,并祝您在MATLAB学习过程中取得成功!如果有任何其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值