【C語言入門級教學】sizeof和strlen的對?

1.sizeof和strlen的對?

1.1 sizeof

sizeof 計算變量所占內存空間??的,單位是字節,如果操作數是類型的話,計算的是使?類型創建的變量所占內存空間的??。 sizeof 只關注占?內存空間的??,不在乎內存中存放什么數據。 ?如:

#inculde <stdio.h>  
int main() 
{ int a = 10; printf("%d\n", sizeof(a)); printf("%d\n", sizeof a);//表達式可不帶括號 printf("%d\n", sizeof(int));  return 0; 
}

易錯題

#include <stdio.h>
int main()
{int a=10;printf("%zu\n",sizeof(a+3.14));//結果是8,int+double結果還是double
}

1.2 strlen

strlen 是C語?庫函數,功能是求字符串?度

函數原型如下:

size_t strlen ( const char * str );

統計的是從 strlen 函數的參數 str 中這個地址開始向后,\0 之前字符串中字符的個數。

strlen 函數會?直向后找 \0 字符,直到找到為?,所以可能存在越界查找。

#include <stdio.h>  
int main() 
{ char arr1[3] = {'a', 'b', 'c'}; char arr2[] = "abc"; printf("%d\n", strlen(arr1));//隨機值,因為找不到\0越界了printf("%d\n", strlen(arr2));//3printf("%d\n", sizeof(arr1));//12 sizeof(數組名)表示整個數組,計算的是整個數組的大小printf("%d\n", sizeof(arr2));//16 \0也算一個元素return 0; 
}

1.3 sizeof和strlen的對?

sizeofstrlen
1.sizeof是操作符1.strlen是庫函數,使?需要包含頭?件 string.h
2.sizeof計算操作數所占內存的??,單位是字節2.srtlen是求字符串?度的,統計的是 \0 之前字符的個數
3.不關注內存中存放什么數據3.關注內存中是否有 \0 ,如果沒有 \0 ,就會持續往后找,可能會越界
4.返回值類型是size_t類型,用%zu打印4.返回值類型是size_t類型,用%zu打印

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/94887.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/94887.shtml
英文地址,請注明出處:http://en.pswp.cn/web/94887.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

線程安全及死鎖問題

系列文章目錄 初步了解多線程-CSDN博客 目錄 系列文章目錄 前言 一、線程安全 1. 線程安全問題 2. 問題原因分析 3. 問題解決辦法 4. synchronized 的優勢 1. 自動解鎖 2. 是可重入鎖 二、死鎖 1. 一個線程一把鎖 2. 兩個線程兩把鎖 3. N 個線程 M 把鎖 4. 死鎖…

2025年8月無人駕駛技術現有技術報告

第1章 引言 無人駕駛技術作為21世紀交通運輸領域最具革命性的技術創新之一&#xff0c;正在深刻地改變著人類的出行方式和生活模式。進入2025年&#xff0c;隨著人工智能、5G通信、高精度傳感器等關鍵技術的快速發展與成熟&#xff0c;無人駕駛技術已從實驗室的概念驗證階段逐…

CETOL 6σ 助力康美醫療(CONMED Corporation)顯著提升一次性穿刺器產品合格率

概述 康美醫療 (CONMED Corporation)將 Sigmetrix 的 CETOL 6σ 公差分析軟件應用于一次性穿刺器的結構優化。該裝置是微創外科技術的一次早期突破。在設計階段&#xff0c;團隊發現“測量臨界間隙”存在尺寸偏差、超出預期范圍&#xff0c;可能在手術中造成患者皮膚損傷&…

LaunchScreen是啥?AppDelegate是啥?SceneDelegate是啥?ContentView又是啥?Main.storyboard是啥?

雖然我很想挑戰一下swiftui,但是精力真的是有限&#xff0c;把精力分散開不是一個很好的選擇&#xff0c;so swiftui淺嘗則止了&#xff0c;目前的精力在html上面。 AppDelegate todo SceneDelegate todo ContentView 最明顯的就是這個&#xff0c;當編輯的時候&#xff0c;頁面…

垃圾回收機制(GC)

目錄 垃圾回收機制 引用計數法 可達性分析算法 垃圾回收算法 標記清除算法 復制算法 標記壓縮算法 JVM中一次完整的GC&#xff08;分代收集算法&#xff09; 在新生代中 在老年代中 空間分配擔保原則 對象從新生代進入老年代的幾種情況? Young GC 和 Full GC 垃…

DNS域名系統

DNS域名系統一、什么是DNS?二、DNS的域名層級1. 根域2. 頂級域3. 二級域4. 三級域&#xff08;子域&#xff09;5. 主機名三、DNS服務器的分類四、DNS的解析過程五、DNS的記錄類型六、FQDN&#xff08;完全限定域名&#xff09;一、什么是DNS? DNS&#xff08;Domain Name S…

虛擬內存和虛擬頁面

虛擬內存虛擬內存是現代操作系統提供的一種內存管理機制&#xff0c;它允許程序訪問比實際物理內存更大的地址空間。虛擬內存通過將程序的地址空間劃分為多個固定大小的塊&#xff08;稱為頁面&#xff09;&#xff0c;并將這些頁面映射到物理內存或磁盤上的頁面文件中&#xf…

【2025年電賽E題】基于k230的矩形框識別鎖定1

文章目錄 概要 整體架構流程 技術名詞解釋 技術細節 1. 多閾值適配與目標識別邏輯 2. 動態ROI與狀態管理機制 3. 數據平滑與偏差計算 4. 硬件適配與UART通信 小結 靜態矩形框識別 動態矩形框追蹤 概要 本文分析的代碼是基于立創廬山派K230CanMV開發板的目標追蹤系統實現,主要…

c語言中的數組可以用int a[3]來創建。寫一次int就可以了,而java中要聲明兩次int類型像這樣:int[] arr = new int[3];

C 語言數組只需寫一次int&#xff0c;而 Java 需兩次int相關聲明&#xff0c;核心原因是兩種語言的數組本質定義、類型系統設計和內存管理邏輯完全不同&#xff0c;具體可拆解為兩點核心差異&#xff1a;一、C 語言&#xff1a;數組是 “內存塊的類型綁定”&#xff0c;一次聲明…

深度學習——詳細教學:神經元、神經網絡、感知機、激活函數、損失函數、優化算法(梯度下降)

神經網絡實戰&#xff1a; 深度學習——神經網絡簡單實踐&#xff08;在乳腺癌數據集上的小型二分類示例&#xff09;-CSDN博客https://blog.csdn.net/2302_78022640/article/details/150779819?spm1001.2014.3001.5502 深度學習——神經網絡&#xff08;PyTorch 實現 MNIST…

Ubuntu 軟件安裝的五種方法

1、App Store 安裝 Ubuntu 里面有 一個App叫 “Ubuntu軟件” 2、Sudo apt-get install 安裝法 注意 使用apt工具安裝軟件&#xff0c;需要sudo&#xff0c;也就是root權限 例子 apt -get install git 會提示查看是否以root用戶運行&#xff0c;install-安裝sudo a…

Day15 (前端:JavaScript基礎階段)

接續上文&#xff1a;Day14——JavaScript 核心知識全解析&#xff1a;變量、類型與操作符深度探秘-CSDN博客 點關注不迷路喲。你的點贊、收藏&#xff0c;一鍵三連&#xff0c;是我持續更新的動力喲&#xff01;&#xff01;&#xff01; 主頁:一位搞嵌入式的 genius-CSDN博…

在線旅游及旅行管理系統項目SQL注入

1.前言 之前在網上隨便逛逛的時候&#xff0c;發現一個有各種各樣的PHP項目的管理系統&#xff0c;隨便點進一個查看&#xff0c;發現還把mysql版本都寫出來了&#xff0c;而且還是PHP語言。 https://itsourcecode.com/free-projects/php-project/online-tours-and-travels-m…

Java網絡編程(UDP, TCP, HTTP)

1. OSI 七層網絡模型層級名稱核心功能協議示例數據單元7應用層提供用戶接口和網絡服務HTTP, FTP, SMTP, DNS報文6表示層數據格式轉換、加密/解密、壓縮/解壓SSL, JPEG, MPEG數據流5會話層建立、管理和終止會話連接NetBIOS, RPC會話數據4傳輸層端到端可靠傳輸、流量控制、差錯校…

【P2P】P2P主要技術及RELAY服務1:python實現

P2P 技術 P2P(點對點)網絡的核心是去中心化的網絡拓撲和通信協議。DP的應用相對較少,但可能出現在: 路由優化:在一些復雜的P2P網絡中,一個節點需要向另一個節點發送消息。為了找到一條延遲最低或跳數最少的路徑,可能會用到類似最短路徑的算法,而這類算法(如Bellman-F…

docker 安裝 redis 并設置 volumes 并修改 修改密碼(一)

在 Docker 中安裝 Redis 并設置volumes持久化數據,同時修改 Redis 密碼的完整步驟如下: 安裝 Docker 如果還沒有安裝 Docker,可以參考以下步驟安裝: 在 Alibaba Cloud Linux 上安裝 Docker # 更新系統 sudo yum update -y# 安裝 Docker 依賴 sudo yum install -y yum-util…

如何找出所有連接到本機指定端口的客戶端 IP

在日常運維或排查網絡問題時&#xff0c;我們常常需要知道&#xff1a;有哪些客戶端正在連接我的服務&#xff1f;連接數是否異常&#xff1f;是否存在惡意掃描或 DDoS 行為&#xff1f;本文將教你使用一條簡潔高效的 Linux 命令組合&#xff0c;統計連接到本機某個端口&#x…

java IDE安裝idea社區版步驟

IntelliJ IDEA 社區版&#xff08;Community Edition&#xff09;是一款功能強大且完全免費的集成開發環境&#xff0c;非常適合 Java 和 Kotlin 初學者或進行基礎開發2。我會為你提供詳細的安裝步驟。 &#x1f6e0; IntelliJ IDEA 社區版安裝指南 &#x1f4cb; 系統要求與…

Agent智能體

什么是 Agent&#xff1f; Agent 是一個智能體&#xff0c;可以接收用戶請求&#xff0c;利用大模型&#xff08;LLM&#xff09;的推理能力&#xff0c;自動決定&#xff1a; 自己回答還是調用外部工具&#xff08;數據庫、API、腳本等&#xff09; 最終把結果返回給用戶。 能…

【VSCode】使用VSCode打開md文件以及轉化為PDF

【VSCode】使用VSCode打開md文件以及轉化為PDF在 Visual Studio Code (VS Code) 中渲染 Markdown 并保存為 PDF&#xff0c;可以通過以下步驟實現。 首先安裝好 VSCode&#xff0c;可以參考下述鏈接 https://blog.csdn.net/weixin_43848614/article/details/148042035 安裝m…